www.gusucode.com > Typesetter CMS v5.0.3PHP源码程序 > Typesetter CMS v5.0.3/Typesetter/Typesetter/include/thirdparty/Bootstrap3/js/carousel.js

    +function(b) {
  function g(a) {
    return this.each(function() {
      var f = b(this), c = f.data("bs.carousel"), e = b.extend({}, d.DEFAULTS, f.data(), "object" == typeof a && a), k = "string" == typeof a ? a : e.slide;
      c || f.data("bs.carousel", c = new d(this, e));
      if ("number" == typeof a) {
        c.to(a);
      } else {
        if (k) {
          c[k]();
        } else {
          e.interval && c.pause().cycle();
        }
      }
    });
  }
  var d = function(a, f) {
    this.$element = b(a);
    this.$indicators = this.$element.find(".carousel-indicators");
    this.options = f;
    this.$items = this.$active = this.interval = this.sliding = this.paused = null;
    this.options.keyboard && this.$element.on("keydown.bs.carousel", b.proxy(this.keydown, this));
    "hover" != this.options.pause || "ontouchstart" in document.documentElement || this.$element.on("mouseenter.bs.carousel", b.proxy(this.pause, this)).on("mouseleave.bs.carousel", b.proxy(this.cycle, this));
  };
  d.VERSION = "3.3.6";
  d.TRANSITION_DURATION = 600;
  d.DEFAULTS = {interval:5E3, pause:"hover", wrap:!0, keyboard:!0};
  d.prototype.keydown = function(a) {
    if (!/input|textarea/i.test(a.target.tagName)) {
      switch(a.which) {
        case 37:
          this.prev();
          break;
        case 39:
          this.next();
          break;
        default:
          return;
      }
      a.preventDefault();
    }
  };
  d.prototype.cycle = function(a) {
    a || (this.paused = !1);
    this.interval && clearInterval(this.interval);
    this.options.interval && !this.paused && (this.interval = setInterval(b.proxy(this.next, this), this.options.interval));
    return this;
  };
  d.prototype.getItemIndex = function(a) {
    this.$items = a.parent().children(".item");
    return this.$items.index(a || this.$active);
  };
  d.prototype.getItemForDirection = function(a, b) {
    var c = this.getItemIndex(b);
    return ("prev" == a && 0 === c || "next" == a && c == this.$items.length - 1) && !this.options.wrap ? b : this.$items.eq((c + ("prev" == a ? -1 : 1)) % this.$items.length);
  };
  d.prototype.to = function(a) {
    var b = this, c = this.getItemIndex(this.$active = this.$element.find(".item.active"));
    if (!(a > this.$items.length - 1 || 0 > a)) {
      return this.sliding ? this.$element.one("slid.bs.carousel", function() {
        b.to(a);
      }) : c == a ? this.pause().cycle() : this.slide(a > c ? "next" : "prev", this.$items.eq(a));
    }
  };
  d.prototype.pause = function(a) {
    a || (this.paused = !0);
    this.$element.find(".next, .prev").length && b.support.transition && (this.$element.trigger(b.support.transition.end), this.cycle(!0));
    this.interval = clearInterval(this.interval);
    return this;
  };
  d.prototype.next = function() {
    if (!this.sliding) {
      return this.slide("next");
    }
  };
  d.prototype.prev = function() {
    if (!this.sliding) {
      return this.slide("prev");
    }
  };
  d.prototype.slide = function(a, f) {
    var c = this.$element.find(".item.active"), e = f || this.getItemForDirection(a, c), k = this.interval, h = "next" == a ? "left" : "right", g = this;
    if (e.hasClass("active")) {
      return this.sliding = !1;
    }
    var l = e[0], m = b.Event("slide.bs.carousel", {relatedTarget:l, direction:h});
    this.$element.trigger(m);
    if (!m.isDefaultPrevented()) {
      this.sliding = !0;
      k && this.pause();
      this.$indicators.length && (this.$indicators.find(".active").removeClass("active"), (m = b(this.$indicators.children()[this.getItemIndex(e)])) && m.addClass("active"));
      var n = b.Event("slid.bs.carousel", {relatedTarget:l, direction:h});
      b.support.transition && this.$element.hasClass("slide") ? (e.addClass(a), e[0].offsetWidth, c.addClass(h), e.addClass(h), c.one("bsTransitionEnd", function() {
        e.removeClass([a, h].join(" ")).addClass("active");
        c.removeClass(["active", h].join(" "));
        g.sliding = !1;
        setTimeout(function() {
          g.$element.trigger(n);
        }, 0);
      }).emulateTransitionEnd(d.TRANSITION_DURATION)) : (c.removeClass("active"), e.addClass("active"), this.sliding = !1, this.$element.trigger(n));
      k && this.cycle();
      return this;
    }
  };
  var p = b.fn.carousel;
  b.fn.carousel = g;
  b.fn.carousel.Constructor = d;
  b.fn.carousel.noConflict = function() {
    b.fn.carousel = p;
    return this;
  };
  var l = function(a) {
    var d, c = b(this), e = b(c.attr("data-target") || (d = c.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, ""));
    if (e.hasClass("carousel")) {
      d = b.extend({}, e.data(), c.data());
      if (c = c.attr("data-slide-to")) {
        d.interval = !1;
      }
      g.call(e, d);
      c && e.data("bs.carousel").to(c);
      a.preventDefault();
    }
  };
  b(document).on("click.bs.carousel.data-api", "[data-slide]", l).on("click.bs.carousel.data-api", "[data-slide-to]", l);
  b(window).on("load", function() {
    b('[data-ride="carousel"]').each(function() {
      var a = b(this);
      g.call(a, a.data());
    });
  });
}(jQuery);